Component({
    properties: {
        showModal: {
            type: Boolean,
            value: false // 外部控制弹窗显示/隐藏
        }
    },

    methods: {
        // 阻止弹窗内部点击冒泡到遮罩层
        stopPropagation() {},

        // 关闭弹窗
        closeModal() {
            this.triggerEvent('closeModal'); // 向父页面传递关闭事件
        },

        // 处理登录（调用app.js的login方法）
        handleLogin() {
            const app = getApp();
            const that = this;

            // 1. 获取小程序登录code（必须通过wx.login获取）
            wx.login({
                success: (res) => {
                    if (res.code) {
                        // 2. 调用app的login方法，传入code
                        app.login(
                            res.code,
                            // 登录成功回调：关闭弹窗+通知父页面刷新状态
                            () => {
                                that.closeModal();
                                that.triggerEvent('loginSuccess'); // 向父页面传递登录成功事件
                            },
                            // 登录失败回调
                            (errMsg) => {
                                wx.showToast({ title: errMsg, icon: 'none' });
                            }
                        );
                    } else {
                        wx.showToast({ title: `获取code失败：${res.errMsg}`, icon: 'none' });
                    }
                },
                fail: (err) => {
                    wx.showToast({ title: `登录失败：${err.errMsg}`, icon: 'none' });
                }
            });
        }
    }
});